package jmine.tec.datadigester.pacoteimportacao.beans;

import java.io.IOException;
import java.io.InputStream;

import jmine.tec.utils.io.ReversibleOutputStream;

/**
 * Entidade que representa um arquivo que deve ser processado pelo dataDigester.
 * 
 * @author Rafael Volpato
 */
public class PacoteImportacaoFile {

    private String codigo;

    private String filename;

    private boolean async;

    private ReversibleOutputStream data;

    /**
     * Construtor.
     * 
     * @param codigo codigo do driver/processor
     * @param filename nome do arquivo
     * @param data o conteudo do arquivo
     * @param async async
     */
    public PacoteImportacaoFile(String codigo, String filename, ReversibleOutputStream data, boolean async) {
        this.codigo = codigo;
        this.filename = filename;
        this.data = data;
        this.async = async;
    }

    /**
     * @return the codigo
     */
    public String getCodigo() {
        return this.codigo;
    }

    /**
     * @return the filename
     */
    public String getFilename() {
        return this.filename;
    }

    /**
     * Verifica se o arquivo deve ser executado de forma assíncrona
     * 
     * @return boolean
     */
    public boolean isAsync() {
        return this.async;
    }

    /**
     * @return the data
     * @throws IOException IOException
     */
    public InputStream getData() throws IOException {
        return this.data.reverse();
    }
}
